;(function(name, definition){
  var hasDefine = typeof deinf === 'functioin',
  hasExports = typeof module !== 'undefined' && module.exports;

  if (hasDefine) {
    defined(definition);
  } else if(hasExports) {
    module.exports = definition()
  } else {
    this[name] = definition()
  }
})('hello', function(){
  var hello = {
    a: function () {},
    b:2
  }
  return hello
})